﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;
using System.Web.UI.WebControls;
using Box.BL;
using Box.Entities;
using Microsoft.Practices.Unity;

namespace Box.Cliente.Logistica.Insumos
{
    public partial class frmInsumos : System.Web.UI.Page
    {
        [Dependency]
        public IInsumoBL insumoBl { get; set; }
        [Dependency]
        public IMarcaBL MarcaBL { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var accion = Request.QueryString["accion"];
                var id = Request.QueryString["id"];

                if (accion == null)
                {
                    Response.Redirect("frmListInsumos.aspx");
                }
                else if (accion == "editar")
                {
                    var identificador = int.Parse(id);

                    var insumo = insumoBl.GetFromInsumosById(identificador);
                    txtId.Text = insumo.Id.ToString();
                    txtNombre.Text = insumo.NombreInsumo;
                    txtDescripcion.Text = insumo.DescripcionInsumo;
                    ddlUnidadMedida.SelectedValue = insumo.MedidaInsumo;
                    ddlMarca.SelectedValue = insumo.IdMarca.ToString();
                    txtPrecio.Text = insumo.Precio.ToString();
                }
                else if (accion == "Eliminar")
                {
                    var idcc = Int32.Parse(id.ToString());
                    insumoBl.RemoveInsumo(idcc);
                    Response.Redirect("frmLisInsumos.aspx");
            }
        }
        }

       public IEnumerable<Marca> GetAllMarca()
        {
            return MarcaBL.GetAllFromMarcas();
        } 


        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            var accion = Request.QueryString["accion"];

            var insumo = new Insumo()
            {
                NombreInsumo = txtNombre.Text,
                DescripcionInsumo = txtDescripcion.Text,
                MedidaInsumo = ddlUnidadMedida.SelectedValue,
                //CategoriaInsumo = ddlCategoria.SelectedValue,
                IdMarca = Int32.Parse(ddlMarca.SelectedValue),
                Precio = decimal.Parse(txtPrecio.Text)
            };
            if (accion == "nuevo")
            {
                if (txtNombre.Text!=string.Empty && txtDescripcion.Text!=null && ddlUnidadMedida.SelectedValue!=null)
                {
                    insumoBl.AddInsumo(insumo);
                    Response.Redirect("frmLisInsumos.aspx");
                }
                
            }
            else if (accion == "editar")
            {
                insumo.Id = int.Parse(txtId.Text);
                if (txtNombre.Text != string.Empty)
                {
                    insumoBl.UpdateInsumo(insumo);
                    Response.Redirect("frmLisInsumos.aspx");
                }
            }
        }

        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
        public static string[] GetUndMedida(string prefixText, int count, string contextKey)
        {
            string[] und = {"Litros","Mililitro",
                               "Kilogramo","Miligramo","Gramo",
                               "Centimetro","Milimetro",
                               "Unidad", "Docena", "Metros",
                               "Metro cuadrado","Centímetro cuadrado",
                               "Milímetro cuadrado","Metro cúbico","Milímetro cúbico"
                           };

            return
                (from n in und where n.StartsWith(prefixText,
                     StringComparison.CurrentCultureIgnoreCase) select n).Take(
                    count).ToArray();
        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {

                 Response.Redirect("frmLisInsumos.aspx");
      }
    }
}